<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<title>BlockAllocationTableWriter (POI API Documentation)</title>
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="BlockAllocationTableWriter (POI API Documentation)";
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!--   -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/BlockAllocationTableWriter.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/poi/poifs/storage/BlockAllocationTableReader.html" title="class in org.apache.poi.poifs.storage"><span class="strong">PREV CLASS</span></a></li>
<li><a href="../../../../../org/apache/poi/poifs/storage/BlockList.html" title="interface in org.apache.poi.poifs.storage"><span class="strong">NEXT CLASS</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/poi/poifs/storage/BlockAllocationTableWriter.html" target="_top">FRAMES</a></li>
<li><a href="BlockAllocationTableWriter.html" target="_top">NO FRAMES</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>SUMMARY:&nbsp;</li>
<li>NESTED&nbsp;|&nbsp;</li>
<li>FIELD&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">CONSTR</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">METHOD</a></li>
</ul>
<ul class="subNavList">
<li>DETAIL:&nbsp;</li>
<li>FIELD&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">CONSTR</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">METHOD</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<p class="subTitle">org.apache.poi.poifs.storage</p>
<h2 title="Class BlockAllocationTableWriter" class="title">Class BlockAllocationTableWriter</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.poi.poifs.storage.BlockAllocationTableWriter</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../../org/apache/poi/poifs/filesystem/BATManaged.html" title="interface in org.apache.poi.poifs.filesystem">BATManaged</a>, <a href="../../../../../org/apache/poi/poifs/storage/BlockWritable.html" title="interface in org.apache.poi.poifs.storage">BlockWritable</a></dd>
</dl>
<hr>
<br>
<pre>public final class <strong>BlockAllocationTableWriter</strong>
extends java.lang.Object
implements <a href="../../../../../org/apache/poi/poifs/storage/BlockWritable.html" title="interface in org.apache.poi.poifs.storage">BlockWritable</a>, <a href="../../../../../org/apache/poi/poifs/filesystem/BATManaged.html" title="interface in org.apache.poi.poifs.filesystem">BATManaged</a></pre>
<div class="block">This class manages and creates the Block Allocation Table, which is
 basically a set of linked lists of block indices.
 <P>
 Each block of the filesystem has an index. The first block, the
 header, is skipped; the first block after the header is index 0,
 the next is index 1, and so on.
 <P>
 A block's index is also its index into the Block Allocation
 Table. The entry that it finds in the Block Allocation Table is the
 index of the next block in the linked list of blocks making up a
 file, or it is set to -2: end of list.</div>
<dl><dt><span class="strong">Author:</span></dt>
  <dd>Marc Johnson (mjohnson at apache dot org)</dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_summary">
<!--   -->
</a>
<h3>Constructor Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../../../../../org/apache/poi/poifs/storage/BlockAllocationTableWriter.html#BlockAllocationTableWriter(org.apache.poi.poifs.common.POIFSBigBlockSize)">BlockAllocationTableWriter</a></strong>(<a href="../../../../../org/apache/poi/poifs/common/POIFSBigBlockSize.html" title="class in org.apache.poi.poifs.common">POIFSBigBlockSize</a>&nbsp;bigBlockSize)</code>
<div class="block">create a BlockAllocationTableWriter</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/poifs/storage/BlockAllocationTableWriter.html#allocateSpace(int)">allocateSpace</a></strong>(int&nbsp;blockCount)</code>
<div class="block">Allocate space for a block of indices</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/poifs/storage/BlockAllocationTableWriter.html#countBlocks()">countBlocks</a></strong>()</code>
<div class="block">Return the number of BigBlock's this instance uses</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/poifs/storage/BlockAllocationTableWriter.html#createBlocks()">createBlocks</a></strong>()</code>
<div class="block">Create the BATBlocks we need</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/poifs/storage/BlockAllocationTableWriter.html#getStartBlock()">getStartBlock</a></strong>()</code>
<div class="block">get the starting block</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/poifs/storage/BlockAllocationTableWriter.html#setStartBlock(int)">setStartBlock</a></strong>(int&nbsp;start_block)</code>
<div class="block">Set the start block for this instance</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/poifs/storage/BlockAllocationTableWriter.html#writeBlock(org.apache.poi.poifs.storage.BATBlock, java.nio.ByteBuffer)">writeBlock</a></strong>(<a href="../../../../../org/apache/poi/poifs/storage/BATBlock.html" title="class in org.apache.poi.poifs.storage">BATBlock</a>&nbsp;bat,
          java.nio.ByteBuffer&nbsp;block)</code>
<div class="block">Write the BAT into its associated block</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/poifs/storage/BlockAllocationTableWriter.html#writeBlocks(java.io.OutputStream)">writeBlocks</a></strong>(java.io.OutputStream&nbsp;stream)</code>
<div class="block">Write the storage to an OutputStream</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a name="BlockAllocationTableWriter(org.apache.poi.poifs.common.POIFSBigBlockSize)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>BlockAllocationTableWriter</h4>
<pre>public&nbsp;BlockAllocationTableWriter(<a href="../../../../../org/apache/poi/poifs/common/POIFSBigBlockSize.html" title="class in org.apache.poi.poifs.common">POIFSBigBlockSize</a>&nbsp;bigBlockSize)</pre>
<div class="block">create a BlockAllocationTableWriter</div>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="createBlocks()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createBlocks</h4>
<pre>public&nbsp;int&nbsp;createBlocks()</pre>
<div class="block">Create the BATBlocks we need</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>start block index of BAT blocks</dd></dl>
</li>
</ul>
<a name="allocateSpace(int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>allocateSpace</h4>
<pre>public&nbsp;int&nbsp;allocateSpace(int&nbsp;blockCount)</pre>
<div class="block">Allocate space for a block of indices</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>blockCount</code> - the number of blocks to allocate space for</dd>
<dt><span class="strong">Returns:</span></dt><dd>the starting index of the blocks</dd></dl>
</li>
</ul>
<a name="getStartBlock()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getStartBlock</h4>
<pre>public&nbsp;int&nbsp;getStartBlock()</pre>
<div class="block">get the starting block</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the starting block index</dd></dl>
</li>
</ul>
<a name="writeBlocks(java.io.OutputStream)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>writeBlocks</h4>
<pre>public&nbsp;void&nbsp;writeBlocks(java.io.OutputStream&nbsp;stream)
                 throws java.io.IOException</pre>
<div class="block">Write the storage to an OutputStream</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../org/apache/poi/poifs/storage/BlockWritable.html#writeBlocks(java.io.OutputStream)">writeBlocks</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/poi/poifs/storage/BlockWritable.html" title="interface in org.apache.poi.poifs.storage">BlockWritable</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>stream</code> - the OutputStream to which the stored data should
               be written</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code>java.io.IOException</code> - on problems writing to the specified
            stream</dd></dl>
</li>
</ul>
<a name="writeBlock(org.apache.poi.poifs.storage.BATBlock, java.nio.ByteBuffer)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>writeBlock</h4>
<pre>public static&nbsp;void&nbsp;writeBlock(<a href="../../../../../org/apache/poi/poifs/storage/BATBlock.html" title="class in org.apache.poi.poifs.storage">BATBlock</a>&nbsp;bat,
              java.nio.ByteBuffer&nbsp;block)
                       throws java.io.IOException</pre>
<div class="block">Write the BAT into its associated block</div>
<dl><dt><span class="strong">Throws:</span></dt>
<dd><code>java.io.IOException</code></dd></dl>
</li>
</ul>
<a name="countBlocks()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>countBlocks</h4>
<pre>public&nbsp;int&nbsp;countBlocks()</pre>
<div class="block">Return the number of BigBlock's this instance uses</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../org/apache/poi/poifs/filesystem/BATManaged.html#countBlocks()">countBlocks</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/poi/poifs/filesystem/BATManaged.html" title="interface in org.apache.poi.poifs.filesystem">BATManaged</a></code></dd>
<dt><span class="strong">Returns:</span></dt><dd>count of BigBlock instances</dd></dl>
</li>
</ul>
<a name="setStartBlock(int)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>setStartBlock</h4>
<pre>public&nbsp;void&nbsp;setStartBlock(int&nbsp;start_block)</pre>
<div class="block">Set the start block for this instance</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../org/apache/poi/poifs/filesystem/BATManaged.html#setStartBlock(int)">setStartBlock</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/poi/poifs/filesystem/BATManaged.html" title="interface in org.apache.poi.poifs.filesystem">BATManaged</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>start_block</code> - index into the array of BigBlock instances making
              up the the filesystem</dd></dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!--   -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/BlockAllocationTableWriter.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/poi/poifs/storage/BlockAllocationTableReader.html" title="class in org.apache.poi.poifs.storage"><span class="strong">PREV CLASS</span></a></li>
<li><a href="../../../../../org/apache/poi/poifs/storage/BlockList.html" title="interface in org.apache.poi.poifs.storage"><span class="strong">NEXT CLASS</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/poi/poifs/storage/BlockAllocationTableWriter.html" target="_top">FRAMES</a></li>
<li><a href="BlockAllocationTableWriter.html" target="_top">NO FRAMES</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>SUMMARY:&nbsp;</li>
<li>NESTED&nbsp;|&nbsp;</li>
<li>FIELD&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">CONSTR</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">METHOD</a></li>
</ul>
<ul class="subNavList">
<li>DETAIL:&nbsp;</li>
<li>FIELD&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">CONSTR</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">METHOD</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>
                <i>Copyright 2014 The Apache Software Foundation or
        its licensors, as applicable.</i>
            </small></p>
</body>
</html>
